package model;

import interfaz.IElemento;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Diagrama implements IElemento {

	private String nombre;
	private List<String> listaEntidades;
    private List<Relacion> listaRelaciones;
    private List<Jerarquia> listaJerarquia;
	    
   
	/**
	 * Constructor por defecto
	 * para ser usado solamente por el constructor XML
	 */
    public Diagrama(){
    	
    }
    
    public Diagrama(String nombre){
		this.nombre = nombre;
		listaEntidades = new ArrayList<String>();
	    listaRelaciones = new ArrayList<Relacion>();
	   // listaJerarquia = new ArrayList<Jerarquia>();
	}
	
	public List<Relacion> getListaRelaciones() {
		return listaRelaciones;
	}

	public void setListaRelaciones(List<Relacion> listaRelaciones) {
		this.listaRelaciones = listaRelaciones;
	}

	public List<Jerarquia> getListaJerarquia() {
		if (listaJerarquia == null) 
			listaJerarquia = new ArrayList<Jerarquia>();
		return listaJerarquia;
	}

	public void setListaJerarquia(List<Jerarquia> listaJerarquia) {
		this.listaJerarquia = listaJerarquia;
	}
 

	public List<String> getListaEntidades() {
		return listaEntidades;
	}

	public String getIdentificator() {
		return nombre;
	}

	public void setIdentificator(String nombre) {
		this.nombre = nombre;
	}

	/**
	 * Se debe inicializar la lista de jerarquia fuera del constructor para que todos aquellos que no tengan jerarquias no lo visualicen en el archivo xml.
	 */
	public void crearListaDeJerarquia(){
		listaJerarquia = new ArrayList<Jerarquia>();
	}
	
	public boolean existeRelacionEnDiagramaActual(String nombreRelacion){
		boolean existe = false;
		for (Relacion relacion : listaRelaciones) {
			if (relacion.getIdentificator().equalsIgnoreCase(nombreRelacion))
				existe = true;
		
		}
		return existe;
	}
	
	public boolean diagramaVacio() {
		if (this.getListaEntidades().isEmpty())
			return true;
		else
			return false;
	}
		
}
